The term report refers to structured information generated from a data source, such as a database. Typically, the report represents a small sub-set of the data available in the data source and is generated in response to user queries. Conventional report-based prompts are designed to solicit input from users at runtime, thus making it possible for a reporting system to effectively establish the information to be displayed in a report.
FIG. 1 illustrates an exemplary prior art world sales report where a user is asked to specify the region for which sales data should be presented. In this context, a report prompt can be considered a type of rudimentary data filter that is applied by the end user at runtime.
A cascading prompt makes it possible for report designers to further establish a logical prompt navigation that can be applied as a more granular filter. That is, the cascading prompt presents the user with a hierarchical prompt control in which a top-level selection constrains a lower level of prompt controls, continuing in a cascading series. This operation is illustrated in FIG. 2 where an end user is presented with a sales report designed to display the sales data for any specified company in a global conglomerate. The only required parameter is a company name. To make it easier for users to navigate to a specific company's data, a cascading prompt is set-up to obtain a set of parameters, in this case a country, then a region, then a city, and finally a company name.
Cascading prompt technology of this type exists in current reporting technologies. Essentially, the technology makes it easier for users to identify the information they need in cases where the value of a required report parameter is derived from a list of values that is too extensive to navigate as a flat entity.
Unfortunately, there are a number of problems with this approach. First, the performance associated with this approach is sub-optimal since each time a report is generated it is necessary to access a current list of values associated with the cascading prompts. This results in a large volume of traffic at the database, which diminishes performance. In addition, this approach is not scalable. That is, since the source data repository forms a bottleneck to performance, existing cascading prompt techniques do not scale well.
In view of the foregoing, it would be highly desirable to provide an improved technique for generating reports from cascading prompts. In particular, it would be highly desirable to provide a technique with improved performance and scalability.